home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 015 / proprint.bas < prev    next >
BASIC Source File  |  1988-11-09  |  5KB  |  97 lines

  1. 10 REM SIMPLE PROGRAM TO SET FEATURES ON IBM PROPRINTER FROM BASICA
  2. 20 REM BY CHRISTOPHER WERBY, NOVEMBER 10, 1985
  3. 30 IF FIRST=0 THEN FIRST=1 ELSE 160
  4. 40 DEF SEG=&H40
  5. 50 POKE &H17, PEEK(&H17) OR &H40
  6. 60 KEY OFF
  7. 70 STARTF=1
  8. 80 'X$="CW":GOTO 790
  9. 90 'X$="CAN":GOTO 460
  10. 100 CLS:LOCATE 10,1:INPUT "Do you want to Cancel all settings and set TOF now";ANSWER$
  11. 110 IF LEFT$(ANSWER$,1)="n" OR LEFT$(ANSWER$,1)="N" THEN 150
  12. 120 IF LEFT$(ANSWER$,1)="y" OR LEFT$(ANSWER$,1)="Y" THEN 140
  13. 130 PRINT TAB(53);"Huh?":FOR U=1 TO 500:NEXT U:GOTO 100
  14. 140 X$="CAN":GOTO 530
  15. 150 STARTF=0
  16. 160 REM
  17. 170 CLS
  18. 180 PRINT TAB(10);:PRINT CHR$(174);"   ";:COLOR 0,7,0:PRINT " PRINTER UTILITY ";:COLOR 4,6,0:PRINT "  ";CHR$(175):PRINT
  19. 190 PRINT TAB(10);"Cancel Settings";TAB(30);"type CAN"
  20. 200 PRINT TAB(10);"Cancel Data";TAB(30);"type CD"
  21. 210 PRINT TAB(10);"Top of Form";TAB(30);"type TOF"
  22. 220 PRINT TAB(10);"Form Feed";TAB(30);"type FF"
  23. 230 PRINT TAB(10);"10 Char. per inch";TAB(30);"type C10"
  24. 240 PRINT TAB(10);"12 Char. per inch";TAB(30);"type C12"
  25. 250 PRINT TAB(10);"Condensed Printing";TAB(30);"type SI"
  26. 260 PRINT TAB(10);"Emphasized Printing";TAB(30);"type EP"
  27. 270 PRINT TAB(10);"Cancel Emphasized";TAB(30);"type CE"
  28. 280 PRINT TAB(10);"High Quality";TAB(30);"type HQ"
  29. 290 PRINT TAB(10);"Cancel High Quality";TAB(30);"type CHQ"
  30. 300 PRINT TAB(10);"One Direction Only";TAB(30);"type ODO"
  31. 310 PRINT TAB(10);"Both Directions";TAB(30);"type BD"
  32. 320 PRINT TAB(10);"Auto Perf. Skip";TAB(30);"type APS"
  33. 330 PRINT TAB(10);"Double Wide";TAB(30);"type DW"
  34. 340 PRINT TAB(10);"6 lines per inch";TAB(30);"type LS6"
  35. 350 PRINT TAB(10);"8 lines per inch";TAB(30);"type LS8"
  36. 360 PRINT TAB(10);"Subscript";TAB(30);"type SUB"
  37. 370 PRINT:PRINT TAB(10);"End this program";TAB(30);"type X"
  38. 380 LOCATE 21,49
  39. 390 PRINT "                                "
  40. 400 LOCATE 23,71
  41. 410 PRINT "        "
  42. 420 LOCATE 21,50
  43. 430 PRINT "Which is your option";
  44. 440 INPUT X$
  45. 450 Y=INSTR(1,X$," "):IF Y><0 THEN X$=LEFT$(X$,Y-1)
  46. 460 IF ASC(LEFT$(X$,1))>122 OR ASC(LEFT$(X$,1))<65 THEN 490
  47. 470 IF X$<>"CD" AND X$><"BG1" AND X$><"CAN" AND X$><"FF" AND X$><"C10" AND X$><"C12" AND X$><"SI" AND X$<>"EP" AND X$><"x" THEN 480 ELSE 520
  48. 480 IF X$<>"CE" AND X$><"HQ" AND X$><"CHQ" AND X$><"DW" AND X$><"LS6" AND X$><"LS8" AND X$><"CW" AND X$<>"SUB" AND X$><"ODO" AND X$><"X" THEN 490 ELSE 520
  49. 490 IF X$><"BD" AND X$><"TOF" AND X$><"APS" AND X$><"SPS" AND X$><"SDW" AND LEFT$(X$,2)><"LS" THEN 500 ELSE 520
  50. 500 LOCATE 23,72
  51. 510 BEEP:PRINT "Huh?":FOR G=1 TO 500:B=B+1:NEXT G:GOTO 380
  52. 520 IF X$="X" OR X$="x" THEN 940
  53. 530 IF X$="CAN" THEN LPRINT CHR$(27);CHR$(18); ELSE 660
  54. 540 LPRINT CHR$(27);CHR$(20);            'CANCELS DW
  55. 550 LPRINT CHR$(27);CHR$(65);CHR$(12);   '6 LINES PER INCH
  56. 560 LPRINT CHR$(27);CHR$(50);            'Uses text line spacing set above
  57. 570 LPRINT CHR$(27);CHR$(67);CHR$(0);CHR$(11); 'Form Length 11 inches
  58. 580 LPRINT CHR$(27);CHR$(73);CHR$(0);    'Normal Printing (download font is 4)
  59. 590 LPRINT CHR$(27);CHR$(87);CHR$(0);    'ALSO CANCELS DW
  60. 600 LPRINT CHR$(27);CHR$(70);            'CANCELS EMPHASIZED
  61. 610 LPRINT CHR$(27);CHR$(72);            'CANCEL DS
  62. 620 LPRINT CHR$(27);CHR$(79);            'Cancel Auto Perf Skip
  63. 630 LPRINT CHR$(27);CHR$(84);            'CANCELS SUB
  64. 640 LPRINT CHR$(27);CHR$(85);CHR$(0);    'Print in Both Directions
  65. 650 IF STARTF=1 THEN 150
  66. 660 IF X$="CD" THEN LPRINT CHR$(27);CHR$(24);
  67. 670 IF X$="TOF" THEN LPRINT CHR$(27);
  68. 680 IF X$="APS" THEN LPRINT CHR$(27);CHR$(78);CHR$(2);
  69. 690 IF X$="SPS" THEN LPRINT CHR$(27);CHR$(79);
  70. 700 IF X$="FF" THEN LPRINT CHR$(12);
  71. 710 IF X$="C10" THEN LPRINT CHR$(18);
  72. 720 IF X$="C12" THEN LPRINT CHR$(27);CHR$(58);
  73. 730 IF X$="SI" THEN LPRINT CHR$(27);CHR$(15);
  74. 740 IF X$="EP" THEN LPRINT CHR$(27);CHR$(69);
  75. 750 IF X$="CE" THEN LPRINT CHR$(27);CHR$(70);
  76. 760 IF X$="HQ" THEN LPRINT CHR$(27);CHR$(73);CHR$(2)
  77. 770 IF X$="ODO" THEN LPRINT CHR$(27);CHR$(85);CHR$(1);
  78. 780 IF X$="CHQ" THEN LPRINT CHR$(27);CHR$(73);CHR$(0)
  79. 790 IF LEFT$(X$,2)><"LS" THEN 870
  80. 800 IF LEN(X$)=3 THEN R=VAL(RIGHT$(X$,1)) ELSE R=0
  81. 810 IF LEN(X$)=4 THEN R=VAL(RIGHT$(X$,2))
  82. 820 IF R/2><INT(R/2) OR R>12 OR R<2 THEN GOTO 500
  83. 830 Q=72/R:T=R*11
  84. 840 LPRINT CHR$(27);CHR$(65);CHR$(Q);
  85. 850 'LPRINT CHR$(27);CHR$(67);CHR$(T);
  86. 860 LPRINT CHR$(27);CHR$(50);
  87. 870 IF X$="CW" THEN LPRINT CHR$(27);"=";CHR$(200);CHR$(4);CHR$(20);CHR$(33);
  88. 880 IF X$="testCW" THEN LPRINT CHR$(27);"=";CHR$(200);CHR$(4);CHR$(20);CHR$(33);CHR$(0);CHR$(0);CHR$(60);CHR$(66);CHR$(0);CHR$(153);CHR$(165);CHR$(165);CHR$(165);CHR$(129);CHR$(0);CHR$(66);CHR$(60);
  89. 890 IF X$="SUB" THEN LPRINT CHR$(27);CHR$(83);CHR$(1);
  90. 900 IF X$="BD" THEN LPRINT CHR$(27);CHR$(85);CHR$(0);
  91. 910 IF X$="DW" THEN LPRINT CHR$(27);CHR$(87);CHR$(1);
  92. 920 IF X$="SDW" THEN LPRINT CHR$(27);CHR$(87);CHR$(0);
  93. 930 GOTO 160
  94. 940 DEF SEG=&H40
  95. 950 POKE &H17, PEEK(&H17) AND NOT &H40
  96. 960 SYSTEM
  97.